home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / CUJ9104.ARJ / 9N04070A < prev    next >
Text File  |  1990-12-20  |  4KB  |  74 lines

  1. /* function prototypes */
  2.  
  3. int            sgetch(void);      /* receive a serial character     */
  4. void interrupt serial_isr(void);  /* serial interrupt svc routine   */
  5. void           install(void);     /* installation/initialization    */
  6. void           sputch(char);      /* transmit a serial character    */
  7. void           cleanup(void);     /* exit cleanup routine           */
  8.  
  9. /* data declarations and constants */
  10.  
  11. #define    QUELEN          1024   /* size of serial input buffer    */
  12. char queue[QUELEN];               /* buffer to hold input chars.    */
  13. int  break_detect      =      0;  /* set true on break detect       */
  14. int  char_overrun      =      0;  /* set true on character overrun  */
  15. int  echo              =      0;  /* controls kybd. echo to screen  */
  16. int  translation       =      0;  /* add line feed to incoming C/R  */
  17. int  frame_error       =      0;  /* count of framing errors        */
  18. int  input_index       =      0;  /* input index of serial buffer   */
  19. int  output_index      =      0;  /* output index of serial buffer  */
  20. int  parity_error      =      0;  /* count of parity errors         */
  21. int  ring_detect       =      0;  /* set true on ring detect        */
  22. void interrupt (*old_vector)();   /* place to save old int. vector  */
  23. #define    S_EOF             -1   /* return value for sgetch()      */
  24.                                   /* if no characters are available */
  25.  
  26. /* 8259A PIC register addresses and commands */
  27.  
  28. #define PIC_CTL_REG         0x20  /* 8259A PIC control register     */
  29. #define PIC_INT_MASK_REG    0x21  /* 8259A PIC interrupt mask reg   */
  30. #define NON_SPEC_EOI        0x20  /* non-specific end of interrupt  */
  31.  
  32. /* 8250 ACE register addresses and bit definitions */
  33.  
  34. #if     COM_PORT      ==       1  /* definitions for COM1           */
  35. #define ACE_DATA_REG       0x3f8  /* data register                  */
  36. #define ACE_INT_ENB_REG    0x3f9  /* interrupt enable register      */
  37. #define ACE_INT_IDENT_REG  0x3fa  /* interrupt identification reg   */
  38. #define ACE_LINE_CTL_REG   0x3fb  /* line control register          */
  39. #define ACE_MODEM_CTL_REG  0x3fc  /* modem control register         */
  40. #define ACE_LINE_STAT_REG  0x3fd  /* line status register           */
  41. #define ACE_MODEM_STAT_REG 0x3fe  /* modem status register          */
  42. #define COM_INT_NUM           12  /* interrupt number for COM1      */
  43. #define IRQ_MASK            0xef  /* IRQ mask for IRQ4  (11101111)  */
  44.  
  45. #elif   COM_PORT      ==       2  /* definitions for COM2           */
  46. #define ACE_DATA_REG       0x2f8  /* data register                  */
  47. #define ACE_INT_ENB_REG    0x2f9  /* interrupt enable register      */
  48. #define ACE_INT_IDENT_REG  0x2fa  /* interrupt identification reg   */
  49. #define ACE_LINE_CTL_REG   0x2fb  /* line control register          */
  50. #define ACE_MODEM_CTL_REG  0x2fc  /* modem control register         */
  51. #define ACE_LINE_STAT_REG  0x2fd  /* line status register           */
  52. #define ACE_MODEM_STAT_REG 0x2fe  /* modem status register          */
  53. #define COM_INT_NUM           11  /* interrupt number for COM2      */
  54. #define IRQ_MASK            0xf7  /* IRQ mask for IRQ3  (11110111)  */
  55. #endif
  56.  
  57. #define THRE                0x20  /* transmit holding reg empty     */
  58. #define CTS                 0x10  /* clear to send                  */
  59. #define DSR                 0x20  /* data set ready                 */
  60. #define RI                  0x40  /* ring indicator                 */
  61. #define DCD                 0x80  /* data carrier detect            */
  62. #define PE                     4  /* parity error                   */
  63. #define FE                     8  /* framing error                  */
  64. #define OE                     2  /* overrun error                  */
  65. #define BI                  0x10  /* break interrupt                */
  66. #define DCTS                   1  /* delta clear to send            */
  67. #define DDSR                   2  /* delta data set ready           */
  68. #define TERI                   4  /* trailing edge ring detect      */
  69. #define DDCD                   8  /* delta data carrier detect      */
  70.  
  71.  
  72.  
  73. /* end of header */
  74.